// https://leetcode.cn/problems/reverse-nodes-in-k-group/description/?envType=study-plan-v2&envId=top-100-liked
// /**
//  * Definition for singly-linked list.
//  * struct ListNode {
//  *     int val;
//  *     ListNode *next;
//  *     ListNode() : val(0), next(nullptr) {}
//  *     ListNode(int x) : val(x), next(nullptr) {}
//  *     ListNode(int x, ListNode *next) : val(x), next(next) {}
//  * };
//  */
// class Solution {
// public:
//     ListNode* reverseKGroup(ListNode* head, int k) {
//         //先遍历一遍看需要逆序多少组
//         if(head == nullptr)
//         {
//             return nullptr;
//         }
//         int n = 0;
//         int i = 0;
//         ListNode* Head = head;
//         while(Head)
//         {
//             Head =Head->next;
//             i++ ;
//         }
//         n = i / k;
//         ListNode* List = new ListNode(0);
//         ListNode* prev = List;
//         ListNode* cur = head;
//         while(n)
//         {
//             ListNode* temp = cur;
//             for(int i = 0 ; i < k ; i++)
//             {
//                 ListNode* next = cur ->next;
//                 cur->next = prev->next;
//                 prev->next = cur;   
//                 cur = next;
//             }
//             n--;
//             prev = temp;
//         }
//         prev->next = cur;
//         return List->next;      
//     }
// };